package cc.rengu.igas.bomp.common.dao;

import cc.rengu.igas.bomp.common.entity.GroupMchntInfo;
import cc.rengu.oltp.utility.bean.PageInfo;
import cc.rengu.oltp.utility.bean.PageResult;

import java.util.List;

/**
 * 集团商户信息正式表接口类
 * Created by 赵奎伍 on 2020/3/24
 */
public interface GroupMchntInfoMapper {
    /**
     * 根据多法人标识查询集团商户信息
     *
     * @param instId 多法人标识
     * @return 集团商户信息
     * @throws Exception 异常
     */
    List<GroupMchntInfo> selectGroupMchntInfoByInstId(String instId) throws Exception;

    /**
     * 根据集团商户号与集团商户名称查询集团商户信息
     *
     * @param instId         多法人标识
     * @param groupMchntNo   集团商户号
     * @param groupMchntName 集团商户名称
     * @param signInstId     签约机构代码
     * @return 集团商户信息
     * @throws Exception 异常
     */
    List<GroupMchntInfo> selectGroupMchntInfoByGroupMchntNoOrGroupMchntNameOrSignInstId(String instId, String groupMchntNo, String groupMchntName, String signInstId) throws Exception;


    /**
     * 根据多法人标识查询集团商户信息
     *
     * @param instId 多法人标识
     * @return 集团商户信息
     * @throws Exception 异常
     */
    PageResult selectGroupMchntInfoPageByInstId(String instId, PageInfo pageInfo) throws Exception;


    /**
     * 根据集团商户号与集团商户名称查询集团商户信息
     *
     * @param instId         多法人标识
     * @param groupMchntNo   集团商户号
     * @param groupMchntName 集团商户名称
     * @param signInstId     签约机构代码
     * @return 集团商户信息
     * @throws Exception 异常
     */
    PageResult selectGroupMchntInfoByGroupMchntNoOrGroupMchntNameOrSignInstId(String instId, String groupMchntNo, String groupMchntName, String signInstId, PageInfo pageInfo) throws Exception;

    /**
     * 根据管理机构列表查询集团商户信息
     *
     * @param instId        多法人标识
     * @param manageInstIds 管理机构列表
     * @return 集团商户信息
     * @throws Exception 异常信息
     */
    /**
     * 根据管理机构列表查询集团商户信息
     *
     * @param instId         多法人标识
     * @param groupMchntNo   集团商户号
     * @param groupMchntName 集团商户名称
     * @param signInstId     签约机构编码
     * @param manageInstIds  管理机构列表
     * @return 集团商户信息
     * @throws Exception 异常信息
     */
    List<GroupMchntInfo> selectGroupMchntInfoByManageInstIds(String instId, String groupMchntNo, String groupMchntName, String signInstId, String manageInstIds) throws Exception;

    /**
     * 根据管理机构列表查询集团商户信息
     *
     * @param instId         多法人标识
     * @param groupMchntNo   集团商户号
     * @param groupMchntName 集团商户名称
     * @param signInstId     签约机构编码
     * @param manageInstIds  管理机构列表
     * @param pageInfo       分页信息
     * @return 集团商户信息
     * @throws Exception 异常信息
     */
    PageResult selectGroupMchntInfoByPageAndManageInstIds(String instId, String groupMchntNo, String groupMchntName, String signInstId, String manageInstIds, PageInfo pageInfo) throws Exception;


    /**
     * 根据多法人标识查询集团商户信息
     *
     * @param instId 多法人标识
     * @return 集团商户信息
     * @throws Exception 异常
     */
    GroupMchntInfo selectGroupMchntInfoByPrimaryKey(String instId, String groupMchntNo) throws Exception;
}

